iT邦幫忙

functional programming相關文章
共有 315 則文章
鐵人賽 Software Development DAY 7

技術 6. Effect 中的錯誤

在這篇中,我們要來看 Effect 中的兩種錯誤類型:預期的錯誤 Expected Error 與非預期的錯誤 Unexpected Error ,另外看在 E...

鐵人賽 Software Development DAY 6

技術 [Day06] 重構程式:擷取 Actions 中的 Calculations

前言 不知道大家平常開發的時候,有沒有遇過這種狀況?一個看似正常的函式,當你試圖幫它撰寫單元測試時,卻發現需要模擬 API 資料、偽造 DOM、處理全域狀態....

鐵人賽 Software Development DAY 6

技術 5. 初識 Effect 中的 concurrency

還記得之前我們建立 Effect 時還有分 sync 跟 promise 的嗎?另外還有提到 Effect 像是藍圖,設計好程式的流程後我們才開始執行,這篇裡我...

鐵人賽 Software Development DAY 5

技術 [Day05] 不可變性(Immutability)

前言 在上一篇文章中,有提到純函數 (Pure Function) 的優點是可預測、易於測試、可推理,雖然實際應用中無法將全部程式碼轉為純函數,但我們可以盡可...

鐵人賽 Software Development DAY 5

技術 4. Effect 的基本使用

在前一篇講了那麼多怎麼建立 Effect 跟如何執行,總覺得好像少了什麼東西,條件判斷的 if 還有像迴圈的 for 這些東西跑到哪邊去了,其實很簡單的,這邊想...

鐵人賽 Software Development DAY 4

技術 [Day04] Pure Function 是什麼?

前言 在上篇文章中,我們學會將程式碼分為 Actions、Calculations 與 Data 三類,並理解到 Calculations 是我們程式中穩定、...

鐵人賽 Software Development DAY 4

技術 3. 第一個 Effect

我們終於要來建立 Effect 了,但… 其實建立 Effect 有非常多的方法,執行 Effect 雖然少一點,但也不只一種,我就介紹幾個比較常用的 使用立即...

鐵人賽 Software Development DAY 3

技術 [Day03] Actions、Calculations 與 Data

前言:Actions、Calculations 與 Data 在上篇文章有提到,FP 的重點是要管理因副作用而產生的程式碼複雜性,而要如何管理副作用造成的意外...

鐵人賽 Software Development DAY 3

技術 2. 為什麼需要 Effect, Promise 不夠嗎

在開始前,我們先來看一個範例,關於以下的 function 你覺得可能有幾個地方可能發生錯誤呢? function fetchItemDetail(id: nu...

鐵人賽 Software Development DAY 2

技術 [Day02] 什麼是 Functional Programming?

前言 「函數式程式設計 (Functional Programming,簡稱 FP)」這個名詞應該大部分人都聽過,通常會看到類似這樣的定義:「FP 是一種使用...

鐵人賽 Software Development DAY 2

技術 1. Functional Programming 簡介

在第一篇我們說到會介紹一點 functional programming (FP) ,不過不用太緊張,我們不會很深入 FP 的概念,我想應該有不少人,看了一些...

鐵人賽 Software Development DAY 1

技術 [Day 01] 系列文動機與大綱

嗨大家好!我是 Monica,第一天一樣來講講系列文動機與大綱,談談未來的內容規劃。 關於分享主題 再次嘗試鐵人賽,這次的主題其實之前就想寫了,覺得 Func...

鐵人賽 Software Development DAY 15

技術 Day 15. 輸出入處理 - IO & Do notation

雖然函數式程式設計一直強調純函數(Pure Function),不要有Side Effect;但是一個系統程式,不太可能不和使用者、資料庫、終端機…等真實世界接...

鐵人賽 Software Development DAY 15

技術 深入淺出函數式編程 (FP)—進階議題

終於到了 FP 的第四篇了,本篇是 FP 的最後一篇,要來談一些 FP 的進階議題: 函數式編程慣用法 FP 與程式碼復用 (code reuse) 函數式...

鐵人賽 Software Development DAY 1

技術 0. Effect 魔法:替你的應用程式注入堅不可摧的力量

Effect 是近一兩年興起的一套 TypeScript 的函式庫,可以幫助我們打造更加強韌的應用程式,目前我已經使用 Effect 這個套件一年多了,這段時間...

鐵人賽 Software Development DAY 14

技術 深入淺出函數式編程 (FP)—常見的機制

在前一篇談到了函數式編程的概念與實作分離的觀點,那實作上有什麼 FP 的機制 (mechanism) 是我們在一般的編程可以使用的呢?不論是 Neovim 插件...

鐵人賽 Software Development DAY 13

技術 深入淺出函數式編程 (FP)—定義的難題

很多學習 FP 的初學者,接觸 FP 不久,就產生了兩個很大的疑問: 我會用 map, filter, reduce 了,那我算是會 FP 了嗎? FP 的...

鐵人賽 Software Development DAY 12

技術 深入淺出函數式編程 (FP)—高階語意

一般而言,在業界主張要使用函數式編程 (FP) 的理由主要有兩個: 開發速度快。 減少 bug 。 另一方面,反對使用函數式編程的理由主要也有兩個: 懂這...

鐵人賽 Software Development DAY 1

技術 序: AI 加速編碼後,你該學什麼?

Emacs 是一台 Lisp 機器,但偽裝成文字編輯器。 (Emacs 社群諺語) 身為一位 Clojure Programmer,我一直有個遺憾:Cloj...

鐵人賽 Software Development DAY 1

技術 Day 01. 數學與程式設計的交會

緣起 在學習網頁開發前端的框架React和Vue的過程中,常常遇到函數式程式設計(Functional Programming)相關的術語,例如Pure fu...

技術 解耦合的藝術:讓函數從結構束縛中解放

愛不是束縛而是解放 看這段代碼: function getFullName(user) { return `${user.firstName} ${user...

技術 B5 掌握分層渲染:製作高效 Canvas 繪圖工具

架構設計 在昨天的文章中,我們探討了如何創建動態效果,雖然過程中省略了一些細節,但這為我們打下了良好的基礎。今天,我們將逐步補充那些細節,根據昨天的討論,目前的...

技術 B2 玩轉 IntersectionObserver:揭秘動畫管理員的設計與實作細節!

1.基本結構 動畫管理員的核心是 managerMaker 函數,負責建立物件並初始化必要的屬性和方法。它包含了管理動畫請求的基本邏輯和資料結構。以下是管理員的...

鐵人賽 Python DAY 5
Python 錦囊密技 系列 第 5

技術 【Python錦囊㊙️技5】來寫一個直譯器(Interpreter)吧!

前言 上一篇介紹函數式程式設計(Functional Programming)的概念,這次再進一步應用它及抽象語法樹(Abstract Syntax Tree,...

鐵人賽 Python DAY 4
Python 錦囊密技 系列 第 4

技術 【Python錦囊㊙️技4】函數式程式設計(Functional Programming)

前言 函數式程式設計(Functional Programming)是一種設計模式(Design pattern),主程式能夠將函數當作參數,進行傳遞(輸出/輸...

鐵人賽 Python DAY 2
Python 錦囊密技 系列 第 2

技術 【Python錦囊㊙️技2】Python 很簡單,但要寫的好很不簡單

前言 撰寫Python程式很簡單,因為Python的發明人Guido van Rossum希望撰寫Python程式可以像英文寫作一樣自然,不需要作變數型別宣告、...

鐵人賽 自我挑戰組 DAY 6
JCConf 2024 系列 第 6

技術 Functional Programming IO Demystified: Understanding Partial Application, Monads, and Effects

本屆 #JCConf 邀請到 Uberto Barbini 分享「Functional Programming IO Demystified: Understa...

鐵人賽 Software Development DAY 30
Haskell 從入門到放棄 系列 第 30

技術 [Haskell 從入門到放棄] Day 30 - 開始也是結束

終於寫到最後一天了,今天就輕鬆一點吧xD。 首先感謝所有讀者,在開賽前就有心理準備這個題材本來就是屬於比較冷門領域所以應該沒什麼人關注,本來以為可能完全沒有回饋...

鐵人賽 Software Development DAY 29
Haskell 從入門到放棄 系列 第 29

技術 [Haskell 從入門到放棄] Day 29 - Monad (6)

State Monad 可能有讀者看到 state monad 這個名字時可能會想,Haskell 這樣的語言允許我們擁有 state 這種感覺應該是 muta...

鐵人賽 Software Development DAY 28
Haskell 從入門到放棄 系列 第 28

技術 [Haskell 從入門到放棄] Day 27 - Monad (5)

Writer Monad 不知道讀者有沒有想過,如果今天我想要把每一步 monadic 操作的過程都有 log 紀錄方便我們 debug 的話要怎麼做?(用 p...